package com.translate.mapper;

import java.util.List;



public interface IBaseMapper<T> {

	/**
	 * 无搜索列表 限制条数
	 * 
	 * @param <S>
	 * @param pageParam
	 * @return
	 */
	public List<T> getDataByListByLimit( int num);
	
	int count();
	
	long maxId();
	
	long minId();
	
	/**
	 * 更新状态
	 * @param <P>
	 * @param param
	 * @return
	 */
	<P>int updatePayStatus(P param);
	
	
	 /**
     * 查询身份
     * 
     * @param id 身份主键
     * @return 身份
     */
    public T selectById(int id);
    
    /**
     * 一对多
     * @param id
     * @return
     */
    public List<T> selectListById(int id);
    
    /**
     * 根据id数组查询数据
     * @param ids
     * @return
     */
    public List<T> selectListByIds(int[] ids);
    

    /**
     * 查询身份列表
     * 
     * @param mgIdentity 身份
     * @return 身份集合
     */
    public List<T> selectList(T mgIdentity);

    /**
     * 获取启用的身份
     * @return
     */
    public List<T> getIdentitysByEnabled();
    
    /**
     * 新增身份
     * 
     * @param mgIdentity 身份
     * @return 结果
     */
    public int insert(T mgIdentity);
    
    /**
     * 批量添加
     * @param mgIdentity
     * @return
     */
    public int batchInsert(T[] lists);

    /**
     * 修改身份
     * 
     * @param mgIdentity 身份
     * @return 结果
     */
    public int update(T mgIdentity);

    /**
     * 删除身份
     * 
     * @param id 身份主键
     * @return 结果
     */
    public int deleteById(int id);

    /**
     * 批量删除身份
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteByIds(Integer[] ids);
    
    /**
     * 根据 用户 id  page 时间范围查询数据
     * @param <P>
     * @param param
     * @return
     */
    <P> List<T> selectListByUserId(P param);
	
}
